<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .content {
            width: 200px;
            height: 200px;
            background-color: pink;
        }

        .child {
            width: 100px;
            height: 100px;
            background-color: rebeccapurple;
        }

        /* 方法一 */
        .content1 {
            position: relative;
        }

        .method1 {
            position: absolute;
            top: 100px;
            left: 100px;
            margin-left: -50px;
            margin-top: -50px;
        }

        /* 方法二 */
        .method2 {
            position: absolute;
            top: 100px;
            left: 100px;
            transform: translate(-50%, -50%);
        }

        /* 方法三 */
        .content3 {
            display: flex;
            justify-content: center;
            align-items: center;
        }

        /* .method3 {
            flex: 0 1 auto;
        } */
    </style>
</head>
<body>
    <h3>垂直居中</h3>
    <h4>方法一：定位+负外边距</h4>
    <p>父元素，子元素固定宽高，父相子绝，子元素top属性50%,上外边距margin-top为子元素本身高度的一半（这种方式需要知道子元素的高度）</p>

    <div class="content content1">
        <div class="child method1">
            已知宽高的子元素
        </div>
    </div>

    <br>
    <br>
    <br>
    <br>

    <h4>方法二：定位+transform</h4>
    <p>父元素固定宽高，父相子绝，子元素top属性50%,transform属性为Y轴方向偏移-50%</p>

    <div class="content content1">
        <div class="child method2">
            已知宽高的子元素
        </div>
    </div>

    <h4>方法三：flex布局</h4>
    <p>父元素，子元素固定宽高，父元素使用flex布局，设置align-items属性为center</p>

    <div class="content content3">
        <div class="child method3">
            1已知宽高的子元素
        </div>
    </div>

</body>
</html>